package org.example.backend.demos.web.volunteerModule.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.example.backend.demos.web.volunteerModule.entity.Volunteer;
import org.example.backend.demos.web.volunteerModule.entity.VolunteerDTO;
import org.example.backend.demos.web.volunteerModule.entity.VolunteerQuery;
import org.example.backend.demos.web.volunteerModule.service.impl.BatchAuditResult;

import java.util.List;

public interface VolunteerService {

    Volunteer submitApplication(VolunteerDTO volunteerDTO, Long userId,String name);

    Page<Volunteer> getUserApplications(Long userId, Integer page, Integer size, Integer status);

    Volunteer getApplicationDetail(Long id, Long userId);

    Page<Volunteer> getAdminApplicationList(VolunteerQuery query);

    void auditApplication(Long id, Integer status, String auditRemark);

    BatchAuditResult batchAuditApplications(List<Long> applicationIds, Integer status, String auditRemark);

    boolean hasApplied(Long userId, Long projectId);

    VolunteerStats getVolunteerStats();
}